// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package com.xiaomi.infra.galaxy.common.auth;
import com.xiaomi.infra.galaxy.common.BasicGalaxyRequest;
import com.xiaomi.infra.galaxy.common.GalaxyClientException;
import com.xiaomi.infra.galaxy.common.constants.ReturnCode;
import com.xiaomi.infra.galaxy.common.util.Base64Utils;
import com.xiaomi.infra.galaxy.common.util.HttpUtils;
import com.xiaomi.infra.galaxy.common.util.StringInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
// Referenced classes of package com.xiaomi.infra.galaxy.common.auth:
// Signer, GalaxyCredentials, BasicGalaxyCredentials, SigningAlgorithm
public abstract class AbstractGalaxySigner
implements Signer
{
protected static final String DEFAULT_ENCODING = "UTF-8";
public AbstractGalaxySigner()
{
}
protected byte[] getBinaryRequestPayload(BasicGalaxyRequest basicgalaxyrequest)
{
if (HttpUtils.usePayloadForQueryParameters(basicgalaxyrequest))
{
String s = HttpUtils.encodeParameters(basicgalaxyrequest);
if (s == null)
{
return new byte[0];
}
byte abyte0[];
try
{
abyte0 = s.getBytes("UTF-8");
}
catch (UnsupportedEncodingException unsupportedencodingexception)
{
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, "Unable to encode string into bytes");
}
return abyte0;
} else
{
return getBinaryRequestPayloadWithoutQueryParams(basicgalaxyrequest);
}
}
protected InputStream getBinaryRequestPayloadStream(BasicGalaxyRequest basicgalaxyrequest)
{
if (HttpUtils.usePayloadForQueryParameters(basicgalaxyrequest))
{
String s = HttpUtils.encodeParameters(basicgalaxyrequest);
if (s == null)
{
return new ByteArrayInputStream(new byte[0]);
}
ByteArrayInputStream bytearrayinputstream;
try
{
bytearrayinputstream = new ByteArrayInputStream(s.getBytes("UTF-8"));
}
catch (UnsupportedEncodingException unsupportedencodingexception)
{
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, "Unable to encode string into bytes");
}
return bytearrayinputstream;
} else
{
return getBinaryRequestPayloadStreamWithoutQueryParams(basicgalaxyrequest);
}
}
protected InputStream getBinaryRequestPayloadStreamWithoutQueryParams(BasicGalaxyRequest basicgalaxyrequest)
{
InputStream inputstream;
try
{
inputstream = basicgalaxyrequest.getContent();
}
catch (Exception exception)
{
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, (new StringBuilder()).append("Unable to read request payload to sign request: ").append(exception.getMessage()).toString(), exception);
}
if (inputstream != null)
{
break MISSING_BLOCK_LABEL_20;
}
return new ByteArrayInputStream(new byte[0]);
if (inputstream instanceof StringInputStream)
{
break MISSING_BLOCK_LABEL_91;
}
if (!inputstream.markSupported())
{
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, "Unable to read request payload to sign request.");
}
InputStream inputstream1 = basicgalaxyrequest.getContent();
inputstream = inputstream1;
return inputstream;
}
protected byte[] getBinaryRequestPayloadWithoutQueryParams(BasicGalaxyRequest basicgalaxyrequest)
{
InputStream inputstream = getBinaryRequestPayloadStreamWithoutQueryParams(basicgalaxyrequest);
ByteArrayOutputStream bytearrayoutputstream;
byte abyte0[];
inputstream.mark(-1);
bytearrayoutputstream = new ByteArrayOutputStream();
abyte0 = new byte[5120];
_L1:
int i = inputstream.read(abyte0);
if (i != -1)
{
break MISSING_BLOCK_LABEL_56;
}
bytearrayoutputstream.close();
inputstream.reset();
return bytearrayoutputstream.toByteArray();
bytearrayoutputstream.write(abyte0, 0, i);
goto _L1
Exception exception;
exception;
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, (new StringBuilder()).append("Unable to read request payload to sign request: ").append(exception.getMessage()).toString(), exception);
}
protected String getCanonicalizedEndpoint(URI uri)
{
String s = uri.getHost().toLowerCase();
if (HttpUtils.isUsingNonDefaultPort(uri))
{
s = (new StringBuilder()).append(s).append(":").append(uri.getPort()).toString();
}
return s;
}
protected String getCanonicalizedQueryString(BasicGalaxyRequest basicgalaxyrequest)
{
if (HttpUtils.usePayloadForQueryParameters(basicgalaxyrequest))
{
return "";
} else
{
return getCanonicalizedQueryString(basicgalaxyrequest.getParameters());
}
}
protected String getCanonicalizedQueryString(Map map)
{
TreeMap treemap = new TreeMap();
String s;
String s1;
for (Iterator iterator = map.entrySet().iterator(); iterator.hasNext(); treemap.put(HttpUtils.urlEncode(s, false), HttpUtils.urlEncode(s1, false)))
{
java.util.Map.Entry entry1 = (java.util.Map.Entry)iterator.next();
s = (String)entry1.getKey();
s1 = (String)entry1.getValue();
}
StringBuilder stringbuilder = new StringBuilder();
Iterator iterator1 = treemap.entrySet().iterator();
do
{
if (!iterator1.hasNext())
{
break;
}
java.util.Map.Entry entry = (java.util.Map.Entry)iterator1.next();
stringbuilder.append((String)entry.getKey());
stringbuilder.append("=");
stringbuilder.append((String)entry.getValue());
if (iterator1.hasNext())
{
stringbuilder.append("&");
}
} while (true);
return stringbuilder.toString();
}
protected String getCanonicalizedResourcePath(String s)
{
String s1;
if (s == null || s.length() == 0)
{
s1 = "/";
} else
{
s1 = HttpUtils.urlEncode(s, true);
if (!s1.startsWith("/"))
{
return "/".concat(s1);
}
}
return s1;
}
protected String getRequestPayload(BasicGalaxyRequest basicgalaxyrequest)
{
return newString(getBinaryRequestPayload(basicgalaxyrequest));
}
protected String getRequestPayloadWithoutQueryParams(BasicGalaxyRequest basicgalaxyrequest)
{
return newString(getBinaryRequestPayloadWithoutQueryParams(basicgalaxyrequest));
}
protected byte[] hash(InputStream inputstream)
{
byte abyte1[];
try
{
DigestInputStream digestinputstream = new DigestInputStream(inputstream, MessageDigest.getInstance("SHA-256"));
for (byte abyte0[] = new byte[1024]; digestinputstream.read(abyte0) > -1;) { }
abyte1 = digestinputstream.getMessageDigest().digest();
}
catch (Exception exception)
{
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, (new StringBuilder()).append("Unable to compute hash while signing request: ").append(exception.getMessage()).toString(), exception);
}
return abyte1;
}
public byte[] hash(String s)
{
byte abyte0[];
try
{
MessageDigest messagedigest = MessageDigest.getInstance("SHA-256");
messagedigest.update(s.getBytes("UTF-8"));
abyte0 = messagedigest.digest();
}
catch (Exception exception)
{
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, (new StringBuilder()).append("Unable to compute hash while signing request: ").append(exception.getMessage()).toString(), exception);
}
return abyte0;
}
public byte[] hash(byte abyte0[])
{
byte abyte1[];
try
{
MessageDigest messagedigest = MessageDigest.getInstance("SHA-256");
messagedigest.update(abyte0);
abyte1 = messagedigest.digest();
}
catch (Exception exception)
{
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, (new StringBuilder()).append("Unable to compute hash while signing request: ").append(exception.getMessage()).toString(), exception);
}
return abyte1;
}
protected String newString(byte abyte0[])
{
String s;
try
{
s = new String(abyte0, "UTF-8");
}
catch (UnsupportedEncodingException unsupportedencodingexception)
{
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, "Unable to encode bytes to String", unsupportedencodingexception);
}
return s;
}
protected GalaxyCredentials sanitizeCredentials(GalaxyCredentials galaxycredentials)
{
galaxycredentials;
JVM INSTR monitorenter ;
String s;
String s1;
s = galaxycredentials.getGalaxyAppId();
s1 = galaxycredentials.getGalaxySecretKey();
galaxycredentials;
JVM INSTR monitorexit ;
if (s1 != null)
{
s1 = s1.trim();
}
if (s != null)
{
s = s.trim();
}
return new BasicGalaxyCredentials(s, s1);
Exception exception;
exception;
galaxycredentials;
JVM INSTR monitorexit ;
throw exception;
}
public byte[] sign(String s, byte abyte0[], SigningAlgorithm signingalgorithm)
{
byte abyte1[];
try
{
abyte1 = sign(s.getBytes("UTF-8"), abyte0, signingalgorithm);
}
catch (Exception exception)
{
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, (new StringBuilder()).append("Unable to calculate a request signature: ").append(exception.getMessage()).toString(), exception);
}
return abyte1;
}
protected byte[] sign(byte abyte0[], byte abyte1[], SigningAlgorithm signingalgorithm)
{
byte abyte2[];
try
{
Mac mac = Mac.getInstance(signingalgorithm.toString());
mac.init(new SecretKeySpec(abyte1, signingalgorithm.toString()));
abyte2 = mac.doFinal(abyte0);
}
catch (Exception exception)
{
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, (new StringBuilder()).append("Unable to calculate a request signature: ").append(exception.getMessage()).toString(), exception);
}
return abyte2;
}
protected String signAndBase64Encode(String s, String s1, SigningAlgorithm signingalgorithm)
{
String s2;
try
{
s2 = signAndBase64Encode(s.getBytes("UTF-8"), s1, signingalgorithm);
}
catch (UnsupportedEncodingException unsupportedencodingexception)
{
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, (new StringBuilder()).append("Unable to calculate a request signature: ").append(unsupportedencodingexception.getMessage()).toString(), unsupportedencodingexception);
}
return s2;
}
protected String signAndBase64Encode(byte abyte0[], String s, SigningAlgorithm signingalgorithm)
{
String s1;
try
{
s1 = new String(Base64Utils.encode(sign(abyte0, s.getBytes("UTF-8"), signingalgorithm)));
}
catch (Exception exception)
{
throw new GalaxyClientException(ReturnCode.SIGNATURE_FAILED, (new StringBuilder()).append("Unable to calculate a request signature: ").append(exception.getMessage()).toString(), exception);
}
return s1;
}
}